perl 数组操作

您所在的位置:网站首页 nginx流控 数组第一个元素值 perl 数组操作

perl 数组操作

#perl 数组操作| 来源: 网络整理| 查看: 265

数组末端元素操作 pop、push @quarry = qw(bedrock slate lava granite); =begin comment @quarry 初始值是(bedrock,slate,lava,granite) =cut

pop 取出数组中最后一个元素并将它返回

$rock1 = pop @quarry; $rock2 = pop(@quarry); =begin comment $rock1 的值为:granite $rock2 的值为:lava quarry 现在的值为:(bedrock,slate) =cut

注意到上面的代码中,pop 后面的括号可加可不加,这是 perl 的惯例:只要不会因为拿掉括号就改变原意,括号就是可省略的。 如果数组是空的, pop 将不会执行任何操作且直接返回 undef。

与 pop 相对应的是 push 操作,添加一个或一串元素到数组末端,同样 push 后面的括号可加可不加。

push (@quarry, 'dolomite'); =begin comment 末端追加一个元素 quarry 现在的值为:(bedrock,slate,dolomite) =cut push @quarry, 'quartz'; =begin comment 再追加一个元素 quarry 现在的值为:(bedrock,slate,dolomite,quartz) =cut @others = qw(schist breccia marble); push @quarry, @others; =begin comment 也可以追加另一个数组中的元素 quarry 现在的值为:(bedrock,slate,dolomite,quartz,schist,breccia,marble) =cut

push 可以向末端追加多个元素,注意最后一个语句,这里并不是追加另一个名为 others 的数组,而是追加数组 others 中的元素,数组的元素不可以是另一个数组而只能是标量,这里其实是把数组名展开成它所包含的元素列表。

数组首位元素操作 shift、unshift

类似 pop,shift 取出首位元素并将它返回,如果数组为空,将不执行任何操作,并返回 undef。

$rock1 = shift (@quarry); $rock2 = shift @quarry; =begin comment rock1 的值为 bedrock rock2 的值为 slate quarry 现在的值为:(dolomite,quartz,schist,breccia,marble) =cut

相对应的,unshift 向数组头部插入一个或一组元素。

unshift(@quarry, 'lava'); @others = qw(feldspar granite); unshift @quarry, @others; =begin comment quarry 现在的值为:(feldspar,granite,lava,dolomite,quartz,schist,breccia,marble) =cut

shift、unshift 后面的括号同样可加可不加

使用 splice 添加或移除数组中间的元素

splice 函数的语法如下:

splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]

各参数含义如下: @ARRAY:操作对象,必须是数组。 OFFSET:起始位置的索引。 LENGTH:操作的元素个数,0 表示在 OFFSET 处添加元素,大于 0 表示删除起始索引处开始的 LENGTH 个元素。 LIST:添加的元素列表。

删除指定位置到数组末端的全部元素:

@removed = splice @quarry, 5; =begin comment 从索引位置为 5 的元素开始一直到末尾的元素全部取出,并返回。 此时, @removed 的值为:(schist,breccia,marble) @quarry 的值为:(feldspar,granite,lava,dolomite,quartz) =cut

删除指定位置开始的 n 个元素:

@removed = splice(@quarry, 1, 2); =begin comment 删除从索引位置为 1 开始的 2 个元素,并返回。 此时, @removed 的值为:(granite,lava) @quarry 的值为:(feldspar,dolomite,quartz) =cut

LENGTH 的值为 0 时,在指定位置添加元素:

@others = qw(bedrock slate); splice(@quarry, 1, 0, @others); =begin comment 在索引位置为 1 处,添加 @others 中的元素,此时, @quarry 的值为:(feldspar,bedrock,slate,dolomite,quartz) =cut splice @quarry 2, 0, 'lava'; =begin comment 在索引位置为 2 处添加一个元素,此时, @quarry 的值为:(feldspar,bedrock,lava,slate,dolomite,quartz) =cut

合并上述操作:

splice @quarry, 1, 3, qw(evaporite tuff); =begin comment 从索引为 1 的位置开始,删除 3 个元素,再追加 2 个元素,此时, @quarry 的值为:(feldspar,evaporite,tuff,dolomite,quartz) =cut 数组最后一个元素的索引值 $#ARRAY $ix_last = $#quarry =begin comment $ix_last 的值为 4 =cut


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3